﻿using System;
using System.Collections.Generic;
using System.Text;

namespace ePlanet.Entities
{
    public class EntityBase
    {
        public string DataRowOpMode { get; set; }
    }

    public class CdArchiveEntity : EntityBase
    {
        public string DataId { get; set; }
        public string ArchiveNum { get; set; }
        public string TempOrderNum { get; set; }
        public string ArchiveSource { get; set; }
        public string FullFondsNum { get; set; }
        public string Title { get; set; }
        public decimal? ArchiveType { get; set; }
        public string PublishOrgId { get; set; }
        public string Publisher { get; set; }
        public DateTime? PublishTime { get; set; }
        public string FileOrgId { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public string GloryType { get; set; }
        public decimal? MainBodyNum { get; set; }
        public string Summary { get; set; }
        public string StorageType { get; set; }
        public string FileNum { get; set; }
        public string BoxNum { get; set; }
        public string ExpansionInfo { get; set; }
        public string CreateUserId { get; set; }
        public DateTime? CreateTime { get; set; }
        public string LastUpdateUser { get; set; }
        public DateTime? LastUpdateTime { get; set; }
        public decimal? StatusId { get; set; }
    }

    public class AccountVoucherArchiveEntity : EntityBase
    {
        public string DataId { get; set; }
        public string ArchiveNum { get; set; }
        public string TempOrderNum { get; set; }
        public string ArchiveSource { get; set; }
        public string FullFondsNum { get; set; }
        public string Title { get; set; }
        public decimal? ArchiveType { get; set; }
        public string F_KeepTime { get; set; }
        public DateTime? StartTime { get; set; }
        public DateTime? EndTime { get; set; }
        public decimal? K_Year { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public decimal? PageNum { get; set; }
        public string StartAccount { get; set; }
        public string EndAccount { get; set; }
        public string Summary { get; set; }
        public string StorageType { get; set; }
        public decimal? PageFileNum { get; set; }
        public string BoxNum { get; set; }
        public string ExpansionInfo { get; set; }
        public string CreateUserId { get; set; }
        public DateTime? CreateTime { get; set; }
        public string LastUpdateUser { get; set; }
        public DateTime? LastUpdateTime { get; set; }
        public string AccountType { get; set; }
        public string FileOrgId { get; set; }
        public decimal? MainBodyNum { get; set; }
        public decimal? StatusId { get; set; }
    }

    public class BulidProjectArchiveEntity : EntityBase
    {
        public string DataId { get; set; }
        public string ArchiveNum { get; set; }
        public string TempOrderNum { get; set; }
        public string ArchiveSource { get; set; }
        public string FullFondsNum { get; set; }
        public string Title { get; set; }
        public decimal? ArchiveType { get; set; }
        public string PublishOrgId { get; set; }
        public DateTime? PublishTime { get; set; }
        public DateTime? StartTime { get; set; }
        public DateTime? EndTime { get; set; }
        public string FileOrgId { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public decimal? PageNum { get; set; }
        public decimal? PageFileNum { get; set; }
        public decimal? MainBodyNum { get; set; }
        public string Summary { get; set; }
        public string Remark { get; set; }
        public string HuJianHao { get; set; }
        public string StorageType { get; set; }
        public string FileNum { get; set; }
        public string BoxNum { get; set; }
        public string ExpansionInfo { get; set; }
        public string CreateUserId { get; set; }
        public DateTime? CreateTime { get; set; }
        public string LastUpdateUser { get; set; }
        public DateTime? LastUpdateTime { get; set; }
        public decimal? StatusId { get; set; }
    }

    public class DocumentArchiveEntity : EntityBase
    {
        public string DataId { get; set; }
        public string ArchiveNum { get; set; }
        public string TempOrderNum { get; set; }
        public string ArchiveSource { get; set; }
        public string FullFondsNum { get; set; }
        public string Title { get; set; }
        public decimal? ArchiveType { get; set; }
        public string Publisher { get; set; }
        public DateTime? PublishTime { get; set; }
        public string FileOrgId { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public decimal? PageNum { get; set; }
        public decimal? MainBodyNum { get; set; }
        public decimal? DoplicateBodyNum { get; set; }
        public string Summary { get; set; }
        public string Remark { get; set; }
        public string StorageType { get; set; }
        public string FileNum { get; set; }
        public string BoxNum { get; set; }
        public string ExpansionInfo { get; set; }
        public string CreateUserId { get; set; }
        public DateTime? CreateTime { get; set; }
        public string LastUpdateUser { get; set; }
        public DateTime? LastUpdateTime { get; set; }
        public decimal? StatusId { get; set; }
    }

    public class AudioVedioArchiveEntity : EntityBase
    {
        public string DataId { get; set; }
        public string ArchiveNum { get; set; }
        public string TempOrderNum { get; set; }
        public string ArchiveSource { get; set; }
        public string FullFondsNum { get; set; }
        public string Title { get; set; }
        public decimal? ArchiveType { get; set; }
        public string PublishOrgId { get; set; }
        public string Publisher { get; set; }
        public DateTime? PublishTime { get; set; }
        public string FileOrgId { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public decimal? PageNum { get; set; }
        public decimal? MainBodyNum { get; set; }
        public string Remark { get; set; }
        public string StorageType { get; set; }
        public string FileNum { get; set; }
        public string BoxNum { get; set; }
        public string ExpansionInfo { get; set; }
        public string HuJianHao { get; set; }
        public string CreateUserId { get; set; }
        public DateTime? CreateTime { get; set; }
        public string LastUpdateUser { get; set; }
        public DateTime? LastUpdateTime { get; set; }
        public decimal? StatusId { get; set; }
        public string Summary { get; set; }
    }

    public class OliSearchArchiveEntity : EntityBase
    {
        public string DataId { get; set; }
        public string ArchiveNum { get; set; }
        public string TempOrderNum { get; set; }
        public string ArchiveSource { get; set; }
        public string FullFondsNum { get; set; }
        public string Title { get; set; }
        public decimal? ArchiveType { get; set; }
        public string PublishOrgId { get; set; }
        public string Publisher { get; set; }
        public DateTime? PublishTime { get; set; }
        public string FileOrgid { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public decimal? PageNum { get; set; }
        public decimal? MainBodyNum { get; set; }
        public decimal? DoplicateBodyNum { get; set; }
        public string WellNumber { get; set; }
        public string WellAddress { get; set; }
        public string WellType { get; set; }
        public string Summary { get; set; }
        public string Remark { get; set; }
        public string StorageType { get; set; }
        public string FileNum { get; set; }
        public string BoxNum { get; set; }
        public string ExpansionInfo { get; set; }
        public string HuJianHao { get; set; }
        public string CreateUserId { get; set; }
        public DateTime? CreateTime { get; set; }
        public string LastUpdateUser { get; set; }
        public DateTime? LastUpdateTime { get; set; }
        public decimal? StatusId { get; set; }
        public string CatagoryType { get; set; }
    }

    public class RealKindArchiveEntity : EntityBase
    {
        public string DataId { get; set; }
        public string ArchiveNum { get; set; }
        public string TempOrderNum { get; set; }
        public string ArchiveSource { get; set; }
        public string FullFondsNum { get; set; }
        public string Title { get; set; }
        public decimal? ArchiveType { get; set; }
        public string PublishOrgId { get; set; }
        public string Publisher { get; set; }
        public DateTime? PublishTime { get; set; }
        public string FileOrgId { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public string GloryType { get; set; }
        public decimal? MainBodyNum { get; set; }
        public string Summary { get; set; }
        public string StorageType { get; set; }
        public string FileNum { get; set; }
        public string BoxNum { get; set; }
        public string ExpansionInfo { get; set; }
        public string CreateUserId { get; set; }
        public DateTime? CreateTime { get; set; }
        public string LastUpdateUser { get; set; }
        public DateTime? LastUpdateTime { get; set; }
        public decimal? StatusId { get; set; }
    }

    public class TechnologyArchiveEntity : EntityBase
    {
        public string DataId { get; set; }
        public string ArchiveNum { get; set; }
        public string TempOrderNum { get; set; }
        public string ArchiveSource { get; set; }
        public string FullFondsNum { get; set; }
        public string Title { get; set; }
        public decimal? ArchiveType { get; set; }
        public string PublishOrgId { get; set; }
        public string Publisher { get; set; }
        public DateTime? StartTime { get; set; }
        public DateTime? EndTime { get; set; }
        public string AchiveLevel { get; set; }
        public string FileOrgId { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public decimal? PageNum { get; set; }
        public decimal? PageFileNum { get; set; }
        public decimal? MainBodyNum { get; set; }
        public string HuJianHao { get; set; }
        public string Summary { get; set; }
        public string Remark { get; set; }
        public string StorageType { get; set; }
        public string BoxNum { get; set; }
        public string ExpansionInfo { get; set; }
        public string CreateUserId { get; set; }
        public DateTime? CreateTime { get; set; }
        public string LastUpdateUser { get; set; }
        public DateTime? LastUpdateTime { get; set; }
        public decimal? StatusId { get; set; }
    }

    public class EquipmentArchiveEntity : EntityBase
    {
        public string DataId { get; set; }
        public string ArchiveNum { get; set; }
        public string ArchiveSource { get; set; }
        public string FullFondsNum { get; set; }
        public string Title { get; set; }
        public decimal? ArchiveType { get; set; }
        public DateTime? StartTime { get; set; }
        public DateTime? EndTime { get; set; }
        public string PublishOrgId { get; set; }
        public DateTime? FileTime { get; set; }
        public string FileOrgId { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public decimal? PageNum { get; set; }
        public decimal? FileNum { get; set; }
        public decimal? MainBodyNum { get; set; }
        public string Remark { get; set; }
        public string Summary { get; set; }
        public string HuJianHao { get; set; }
        public string StorageType { get; set; }
        public string BoxNum { get; set; }
        public string ExpansionInfo { get; set; }
        public string TypeNum { get; set; }
        public string CreateUserId { get; set; }
        public DateTime? CreateTime { get; set; }
        string LastUpdateUser { get; set; }
        public DateTime? LastUpdateTime { get; set; }
        public decimal? StatusId { get; set; }
    }


    //Author:Yidane
    //Date:2014年4月20日20:17:53
    /// <summary>
    /// 
    /// </summary>
    public class OLISEARCH_ZongHe_VOL_FILE : EntityBase
    {
        public string DataId { get; set; }
        public string Fullfondsnum { get; set; }
        public decimal? ArchiveType { get; set; }
        public string ArchiveNum { get; set; }
        public string Title { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public string Remark { get; set; }
        public string Summary { get; set; }
        public string Tiyao { get; set; }
        public string ResponsibleUser { get; set; }
        public decimal? MainBodyNum { get; set; }
        public decimal? PageCou { get; set; }
        public decimal? Copies { get; set; }
        public string Fileuser { get; set; }
        public DateTime? FileTime { get; set; }
        public string RecordUser { get; set; }
        public DateTime? RecordTime { get; set; }
        public DateTime? StartTime { get; set; }
        public DateTime? EndTime { get; set; }
        public string FileOrgId { get; set; }
        public string DocumentNum { get; set; }
        public string AwardType { get; set; }
    }

    /// <summary>
    /// 
    /// </summary>
    public class OLISEARCH_ZongHe_VOL : EntityBase
    {
        public string DataId { get; set; }
        public string Fullfondsnum { get; set; }
        public decimal? ArchiveType { get; set; }
        public string ArchiveNum { get; set; }
        public string Title { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public string Remark { get; set; }
        public string Summary { get; set; }
        public string Tiyao { get; set; }
        public string ResponsibleUser { get; set; }
        public decimal? MainBodyNum { get; set; }
        public decimal? PageCou { get; set; }
        public decimal? Copies { get; set; }
        public string Fileuser { get; set; }
        public DateTime? FileTime { get; set; }
        public string RecordUser { get; set; }
        public DateTime? RecordTime { get; set; }
        public DateTime? StartTime { get; set; }
        public DateTime? EndTime { get; set; }
        public string FileOrgId { get; set; }
        public string DocumentNum { get; set; }
        public string AwardType { get; set; }
    }

    public class DOCUMENT_ARCHIVE_VOL_File : EntityBase
    {
        public string DataId { get; set; }
        public string Fullfondsnum { get; set; }
        public decimal? ArchiveType { get; set; }
        public string ArchiveNum { get; set; }
        public string Title { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public string Remark { get; set; }
        public string Summary { get; set; }
        public string Tiyao { get; set; }
        public string ResponsibleUser { get; set; }
        public decimal? MainBodyNum { get; set; }
        public decimal? PageCou { get; set; }
        public decimal? Copies { get; set; }
        public string Fileuser { get; set; }
        public DateTime? FileTime { get; set; }
        public string RecordUser { get; set; }
        public DateTime? RecordTime { get; set; }
        public DateTime? StartTime { get; set; }
        public DateTime? EndTime { get; set; }
        public string FileOrgId { get; set; }
        public string DocumentNum { get; set; }
        public string AwardType { get; set; }
    }

    public class DOCUMENT_ARCHIVE_VOL : EntityBase
    {
        public string DataId { get; set; }
        public string Fullfondsnum { get; set; }
        public decimal? ArchiveType { get; set; }
        public string ArchiveNum { get; set; }
        public string Title { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public string Remark { get; set; }
        public string Summary { get; set; }
        public string Tiyao { get; set; }
        public string ResponsibleUser { get; set; }
        public decimal? MainBodyNum { get; set; }
        public decimal? PageCou { get; set; }
        public decimal? Copies { get; set; }
        public string Fileuser { get; set; }
        public DateTime? FileTime { get; set; }
        public string RecordUser { get; set; }
        public DateTime? RecordTime { get; set; }
        public DateTime? StartTime { get; set; }
        public DateTime? EndTime { get; set; }
        public string FileOrgId { get; set; }
        public string DocumentNum { get; set; }
        public string AwardType { get; set; }
    }



    public class PageFileEntity : EntityBase
    {
        #region"Property"

        public string DataId { get; set; }

        public string F_ArchiveId { get; set; }

        public string ArchiveNum { get; set; }

        public string TempOrderNum { get; set; }

        public string ArchiveSource { get; set; }

        public string FullFondsNum { get; set; }

        public string Title { get; set; }

        public decimal? ArchiveType { get; set; }

        public string Publisher { get; set; }

        public DateTime? PublishTime { get; set; }

        public string FileOrgId { get; set; }

        public string F_KeepTime { get; set; }

        public string F_CarrierType { get; set; }

        public string F_SecurityType { get; set; }

        public string F_KeepSecurityTime { get; set; }

        public string PageNum { get; set; }

        public string HuJianHao { get; set; }

        public string BoxNum { get; set; }

        public string ExpansionInfo { get; set; }

        public string CreateUserId { get; set; }

        public DateTime CreateTime { get; set; }

        public string LastUpdateUser { get; set; }

        public DateTime LastUpdateTime { get; set; }

        public decimal? OrderNum { get; set; }

        public string DocumentNum { get; set; }

        public string K_Year { get; set; }

        public string TypeNum { get; set; }

        #endregion
    }

    public class Dict
    {
        public string Key { get; set; }
        public string Value { get; set; }
        public List<Dict> ChildDictList { get; set; }
    }

    public class CodeTable
    {
        private List<Dict> carrierTypes = new List<Dict>();

        private List<Dict> secretTypes = new List<Dict>();

        private List<Dict> keepTimes = new List<Dict>();

        private List<Dict> accountTypes = new List<Dict>();

        private List<Dict> keepSecurityTimes = new List<Dict>();

        private List<Dict> category = new List<Dict>();

        private List<Dict> catagoryType = new List<Dict>();

        public List<Dict> CarrierTypes { get { return this.carrierTypes; } }

        public List<Dict> SecretTypes { get { return this.secretTypes; } }

        public List<Dict> KeepTimes { get { return this.keepTimes; } }

        public List<Dict> AccountTypes { get { return this.accountTypes; } }

        public List<Dict> KeepSecurityTimes { get { return this.keepSecurityTimes; } }

        public List<Dict> Category { get { return category; } }

        public List<Dict> CatagoryType { get { return this.catagoryType; } }
    }

    public class CommonEntityDTO : EntityBase
    {
        public string DataId { get; set; }
        public string F_ArchiveId { get; set; }
        public string ArchiveNum { get; set; }
        public string TempOrderNum { get; set; }
        public string ArchiveSource { get; set; }
        public string FullFondsNum { get; set; }
        public string Title { get; set; }
        public decimal? ArchiveType { get; set; }
        public string FileOrgId { get; set; }
        public string F_KeepTime { get; set; }
        public string F_CarrierType { get; set; }
        public string F_SecurityType { get; set; }
        public string F_KeepSecurityTime { get; set; }
        public string Summary { get; set; }
        public string StorageType { get; set; }
        public decimal? MainBodyNum { get; set; }
        public string FileNum { get; set; }
        public string BoxNum { get; set; }
        public string ExpansionInfo { get; set; }
        public string PublishOrgId { get; set; }
        public string Publisher { get; set; }
        public DateTime? PublishTime { get; set; }
        public DateTime? FileTime { get; set; }
        public string PageNum { get; set; }
        public decimal? PageFileNum { get; set; }
        public string HuJianHao { get; set; }
        public string Remark { get; set; }
        public string GloryType { get; set; }
        public string WellNumber { get; set; }
        public string WellAddress { get; set; }
        public string WellType { get; set; }
        public decimal? DoplicateBodyNum { get; set; }
        public DateTime? StartTime { get; set; }
        public DateTime? EndTime { get; set; }
        public decimal? K_Year { get; set; }
        public string StartAccount { get; set; }
        public string EndAccount { get; set; }
        public string AccountType { get; set; }
        public decimal? OrderNum { get; set; }
        public string AchiveLevel { get; set; }
        public string DocumentNum { get; set; }
        public string TypeNum { get; set; }

        //Author:Yidane
        //Date:2014年4月21日23:40:10
        public string ArchiveOrgID { get; set; }
        public DateTime? ArchiveTime { get; set; }
        public string CategoryType { get; set; }
        public string DocOrder { get; set; }
        public decimal? PageCou { get; set; }
        public string TiYao { get; set; }
        public string FileDepart { get; set; }
        public DateTime? ArchiveDate { get; set; }
        public string DocNum { get; set; }
        public string IdentityOption { get; set; }
        public DateTime? IdentityTime { get; set; }
        //Author:Yidane
        //Date:2014年5月6日01:31:27
        public DateTime? RecordTime { get; set; }
        public string ResponsibleUser { get; set; }
        public string Fileuser { get; set; }
        public string RecordUser { get; set; }
        public decimal? Copies { get; set; }
        public string AwardType { get; set; }
        //Athor:Yidane
        //Date:2014年7月13日18:40:29
        public string CatagoryType { get; set; }
    }

    public class UpdateArchiveAndPageFileModel<T1, T2>
    {
        private List<T1> archives = new List<T1>();
        private List<T2> pageFiles = new List<T2>();
        public List<T1> Archives { get { return this.archives; } set { this.archives = value; } }
        public List<T2> PageFiles { get { return this.pageFiles; } set { this.pageFiles = value; } }
    }

    public class EntityIdAndTypeRelateAttachFilePath
    {
        public string EntityId { get; set; }

        public string Type { get; set; }

        public string AttachFilePath { get; set; }

        public string ArchiveNum { get; set; }

        public EntityIdAndTypeRelateAttachFilePath() { }

        public EntityIdAndTypeRelateAttachFilePath(string entityId, string attachFilePath, string type = "", string archiveNum = "")
        {
            this.EntityId = entityId;
            this.Type = type;
            this.AttachFilePath = attachFilePath;
            this.ArchiveNum = archiveNum;
        }
    }

    public class ArchiveNumQueryEntity
    {
        public string EntityId { get; set; }
        public string DataBaseEntityId { get; set; }
        public string ArchiveNum { get; set; }
        public string Title { get; set; }
        public ArchiveNumQueryEntity()
        { }
        public ArchiveNumQueryEntity(string entityId, string dataBaseEntityId, string title, string archiveNum)
        {
            this.EntityId = entityId;
            this.DataBaseEntityId = dataBaseEntityId;
            this.Title = title;
            this.ArchiveNum = archiveNum;
        }
    }

    public class AttachmentInfo
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public int FileSize { get; set; }
        public string SaveDirectory { get; set; }
        public string DbHelperString { get; set; }
    }
}
